package br.com.pucrs.tcc.bd;

import java.util.ArrayList;

import org.hibernate.Criteria;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.criterion.Restrictions;

import br.com.pucrs.tcc.ed.Curso;
import br.com.pucrs.tcc.ed.GrupoTrabalho;
import br.com.pucrs.tcc.ed.ItemPriorizacao;

public class CursoBD {

	private Session mSession;

	public CursoBD(Session session) {
		mSession = session;
	}

	public void insert(Curso curso) {
		mSession.save(curso);
		mSession.flush();
	}

	public void update(Curso curso) {
		mSession.update(curso);
		mSession.flush();
	}

	public void delete(Curso curso) {
		mSession.delete(curso);
		mSession.flush();
	}

	public Curso retrieve(Curso curso) {
		Curso cursoRetorno = null;

		Criteria criteria = mSession.createCriteria(Curso.class);
		criteria.add(Restrictions.eq("id", curso.getId()));

		cursoRetorno = (Curso) criteria.uniqueResult();

		return cursoRetorno;
	}

	public ArrayList<Curso> list(Curso curso) {
		ArrayList<Curso> listaRetorno = null;

		StringBuilder sql = new StringBuilder();
		sql.append(" SELECT c.*");
		sql.append(" FROM cursos c");

		SQLQuery query = mSession.createSQLQuery(sql.toString());
		query.addEntity(Curso.class);

		listaRetorno = (ArrayList<Curso>) query.list();

		return listaRetorno;
	}

	

}
